package com.cheng.io.output;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.GZIPOutputStream;

/**
 * 压缩流
 */
public class GZIPOutputStreamTest01 {
    public static void main(String[] args) {
        try (
                // 先读取需要压缩的文件
                InputStream inputStream = new FileInputStream("io/resources/test01.txt");

                // 创建压缩流对象，指定输出压缩包的位置
                GZIPOutputStream outputStream = new GZIPOutputStream(new FileOutputStream("io/resources/test01.gz"));
        ) {
            // 1kb
            byte[] bytes = new byte[1024];
            int readCount;
            while ((readCount = inputStream.read(bytes)) != -1) outputStream.write(bytes, 0, readCount);
            //自动刷新流，并且生产压缩包，最终压缩包中的文件名称为输出流指定的文件名称且不带后缀
            outputStream.finish();

        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}
